package com.itheima.a01myexception;

public class ExceptionDemo8 {
    public static void main(String[] args) {
        /*
        自己处理（捕获异常）灵魂四问：
                灵魂二问：如果try中可能会遇到多个问题，怎么执行？
                先执行第一行可能会出现的异常，如果可以与下面的catch对象对应，则会输出catch里面的代码，然后跳过try...catch体系
                如果第一行没有出现异常，就判断下一行有没有异常，如果有异常，则会输出catch里面的代码，然后跳过try...catch体系，
                以此类推，如果都没有异常，那么catch中的代码都不会执行

                //解决办法：
                会写多个catch与之对应
                        细节：
                            如果我们要捕获多个异常，这些异常中如果存在父子关系的话，那么父类一定要写在下面

                        了解性：
                            在JDK7之后，我们可以在catch中同时捕获多个异常，中间用|进行隔开
                            表示如果出现了A异常或者B异常的话，采取同一种处理方案
         */

        int[] arr = {1, 2, 3, 4, 5, 6};

        try {
            System.out.println(arr[10]);
            System.out.println(2 / 0);
            String s = null;
            System.out.println(s.equals("abc"));
        } catch (ArrayIndexOutOfBoundsException | ArithmeticException e) {
            System.out.println("索引越界了");
        } catch (NullPointerException e) {
            System.out.println("空指针异常");
        }

        System.out.println("看看我执行了吗");
    }
}
